<?php

namespace app\system\model;

use think\Model;

/**
 * 计划任务模型
 */
class Cron extends Model
{
    protected $name = 'system_cron';

    /**
     * 检查任务是否执行
     * @param $arr 任务数组
     * @param $name 任务名称
     * @param $timer 任务时间
     * @return bool
     */
    public static function check($arr, $name, $timer)
    {
        if (!isset($arr[$name])) {
            $obj = new self;
            $obj->save([
                'name' => $name,
                'timer' => $timer,
                'last_time' => time()
            ]);
            return true;
        }
        $item = $arr[$name];
        if ($item['last_time'] + $item['timer'] < time()) {
            $obj = self::find($item['id']);
            $obj->last_time = time();
            if ($item['timer'] != $timer) {
                $obj->timer = $timer;
            }
            $obj->save();
            return true;
        }
        return false;
    }
}
